package com.ncloud.timetask.dashboard.controller;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import com.ncloud.common.enmus.ResultEnum;
import com.ncloud.common.exception.UserException;
import com.ncloud.timetask.dashboard.service.DashboardAdminTaskService;

/**
 * @author sundelong
 * project_name: timetask 
 * type_name: DashboardAdminTaskController 
 * date: 2017年6月21日下午6:01:44 
 * 
 */

@Component
public class DashboardAdminTaskController {
	
	//将本月云网平台收入（渠道结算金额）插入月度表中。
	public static final String COUNT_ADMIN_BALANCE_MONTHLY="1001";
			
	//本月战区销售量统计插入月度表中。
	public static final String COUNT_ADMIN_CHNL_FEE_MONTHLY="1002";
	
	//将本年内各个产品的销售金额 每天统计一次插入表中
	public static final String COUNT_PRODUCT_BALANCE_YEAR="1005";
				
	//将本年内各个套餐的销售金额 每天统计一次插入表中。
	public static final String COUNT_DISCNT_BALANCE_YEAR="1004";	
	
	//每天将本月产品结算单的总额（渠道结算费用）插入数据库
	public static final String COUNT_PRODUCT_BALANCE_MONTHLY="1003";	
	
	@Autowired
	DashboardAdminTaskService adminTask;
	
	//每天23:55:00跑一次，将本月云网平台收入（渠道结算金额）插入月度表中
	@Scheduled(cron = "0 55 23 * * ? ") //每天23：:55执行	
	public void getSumBalanceByThisMonthTask() {
		try {	
			adminTask.getSumBalanceByThisMonth(COUNT_ADMIN_BALANCE_MONTHLY);
		} catch (Exception e) {
			e.printStackTrace();			
		}	   
	  }

	//每天23:55:00跑一次将本月战区销售量统计插入月度表中
	@Scheduled(cron = "0 55 23 * * ? ") //每天23：:55执行
	public void getThisMonthSumBalanceByChnlTask() {
		try {	
			adminTask.getSumBalanceByChnlAndThisMonth(COUNT_ADMIN_CHNL_FEE_MONTHLY);
		} catch (Exception e) {
			e.printStackTrace();			
		}
	}

	//本年内各个产品、业务的销售金额 每天统计一次插入表中
	@Scheduled(cron = "0 55 23 * * ? ") //每天23：:55执行
	public void insertYearProductCountTask(){
		try {	
			adminTask.insertYearProductCount(COUNT_PRODUCT_BALANCE_YEAR, COUNT_DISCNT_BALANCE_YEAR);
		} catch (Exception e) {
			e.printStackTrace();			
		}
	}	
	
	//每天将本月产品结算单的总额（渠道结算费用）插入数据库
	@Scheduled(cron = "0 55 23 * * ? ") //每天23：:55执行
	public void insertTableByDayTask(){
		try {	
			adminTask.insertTableByDay(COUNT_PRODUCT_BALANCE_MONTHLY);
		} catch (Exception e) {
			e.printStackTrace();			
		}		
	}
}
